package com.icinfo.cloud.provider.punish.fastcase.service;

import com.icinfo.cloud.provider.peripheralinterface.regulatory.vo.PunishItemVo;
import com.icinfo.cloud.provider.punish.fasecase.dto.FastNoticeDocumentDto;
import com.icinfo.cloud.provider.punish.fastcase.dto.*;
import com.icinfo.cloud.provider.punish.fastcase.vo.FastAutoCloseCaseReminderVo;
import com.icinfo.cloud.provider.punish.fastcase.vo.FastCaseNoticeDocumentVo;
import com.icinfo.cloud.provider.punish.ucase.caseregister.dto.CaseRegisterDetailQueryDto;
import com.icinfo.framework.common.web.Result;
import org.springframework.web.bind.annotation.RequestParam;

import java.util.List;
import java.util.Map;

/**
 * @author cds
 * @date 2022/12/6
 * @since 汇信科技
 */
public interface IFastCaseRegisterService {

    /**
     * 速结告知书生成
     *
     * @param dto
     * @return
     */
    FastNoticeDocumentDto generateFastNoticeDocument(CaseRegisterDetailQueryDto dto);

    /**
     * 【AJ-V1.1.1】描述： 速结程序转普通程序
     *
     * @author: zhengqiang
     * @date: 2023/3/8
     * @param: caseId
     * @return {@link Result}
     **/
    Result changeToNormalProcedure(String caseId);

    /**
     * 【V1.11.4】描述： 修改简案快办立案(处罚告知)相关文书
     *
     * @author: zhengqiang
     * @date: 2023/4/20
     * @param: modifyOfRegisterDto
     * @return {@link Result}
     **/
    Result modifyFastCaseRegisterDocuments(FastCaseDocumentModifyOfRegisterDto modifyOfRegisterDto);

    /**
     * 【V1.11.4】描述： 简案快办待提交文书编辑通用方法
     *
     * @author: zhengqiang
     * @date: 2023/4/20
     * @param: modifyDto
     * @return
     **/
    void modifyFastCaseDocumentRecord(FastCaseDocumentRecordModifyDto modifyDto);

    /**
     * 【V1.11.4】描述： 修改移动端简案快办立案(处罚告知)相关文书
     *
     * @author: zhengqiang
     * @date: 2023/5/4
     * @param: modifyOfRegisterDto
     * @return {@link Result}
     **/
    Result modifyAppFastCaseRegisterDocuments(AppFastCaseDocumentModifyOfRegisterDto modifyOfRegisterDto);

    /**
     * 【V1.12.1】描述： 生成简案快办文书
     *
     * @author: zhengqiang
     * @date: 2023/8/17
     * @param: dto
     * @return {@link FastCaseNoticeDocumentVo}
     **/
    FastCaseNoticeDocumentVo createFastCaseNoticeDocument(FastCaseRegisterInfoQueryDto dto);

    /**
     * 【V1.12.1】描述： 快办告知步骤操作(上一步,下一步)
     *
     * @author: zhengqiang
     * @date: 2023/8/18
     * @param: operateDto
     * @return {@link int}
     **/
    int saveFastInformOperateStep(FastCaseRegisterOperateDto operateDto);

    /**
     * 【V1.12.1】描述： 获取自动结案提醒
     *
     * @author: zhengqiang
     * @date: 2023/8/23
     * @param: caseId
     * @return {@link FastAutoCloseCaseReminderVo}
     **/
    FastAutoCloseCaseReminderVo getAutoCloseCaseReminder(String caseId);

    /**
     * 【V1.12.1】描述： 获取简案快办处罚事项
     *
     * @author: zhengqiang
     * @date: 2023/8/23
     * @param: orgCode
     * @return {@link List< PunishItemVo>}
     **/
    List<PunishItemVo> getFastAuditPubishTreeByOrgCode(String orgCode);
}
